#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int g_unval;
int g_val = 100;

int main()
{
    printf("code addr:%p\n",main);
    printf("init data addr:%p\n",&g_val);
    printf("uninit data addr:%p\n",&g_unval);

    char* heap = (char*)malloc(20);
    char* heap1 = (char*)malloc(20);
    char* heap2 = (char*)malloc(20);
    char* heap3 = (char*)malloc(20);
    printf("heap addr:%p\n",heap);
    printf("heap1 addr:%p\n",heap1);
    printf("heap2 addr:%p\n",heap2);
    printf("heap3 addr:%p\n",heap3);
    printf("stack addr:%p\n",&heap);
    printf("stack addr:%p\n",&heap1);
    printf("stack addr:%p\n",&heap2);
    printf("stack addr:%p\n",&heap3);
    return 0;
}


/*
int main()
{
    extern char **environ;
    for(int i = 0; environ[i];i++)
    {
        printf("environ[%d]:%s\n",i,environ[i]);
    }
    
    return 0;
}
*/

